Conventionally, a flash memory is known for having a block that serves as a minimum unit of data erasure, and a plurality of such blocks are provided in one flash memory. Further, a control apparatus for controlling such flash memory performs, as a control of data reading/writing operation, data erasure in one block to use that block as a new data recording destination block for recording data, and copies, as required data, a part of data in a previous data recording destination block to a current destination block. Thereafter, upon having a new data writing request, data is written to the new data recording destination block of the flash memory.
Further, Japanese Patent Laid-Open No. 2005-216293 (JP '293) discloses a technique that, if recording of data to the current destination block results in failure, the current destination block is considered as “broken”. In such technique, a block next to the current destination block is used as a new destination of data recording after data erasure, which then serves as the current destination block for subsequent data recording. Then, such technique copies a part of the data in the previous destination block to the current destination block as the required data, and avoids the use of the now “previous” destination block, which has already been determined as broken.
However, in the above-described technique of (JP '293), a broken block will not be detected until the data writing to a certain block results in failure. Therefore, the number of times data is copied from one block to the other is increased. For example, assume that a block A capable of recording about 1000 pieces of data has trouble and writing of the 100th data fails. In such a case, the block A of the flash memory will not be detected as broken until the data writing of the 100th data fails that comes after the writing of the first data to the 99th data, and required data is copied from the block A to the next block, which may be a block B. As a result, data copy is performed earlier than expected at a time of data writing of the 100th data, that is, earlier than at a time of data writing of the 1000th data. That is, the number of times of an inter-block copy operation, or a data copy frequency, is increased, which results in the increase of the process load of the control apparatus.